package com.wgy.day36常见的函数式接口.Supplier接口;

import java.util.function.Supplier;

/**
 * Created by pc on 2020/12/10 20:43
 * Description: LearningJava
 */

/*
java.util.function.Supplier<T> :被称之为生产型接口,指定接口的泛型是什么类型,
                                 那么接口中的get方法就会生成什么类型的数据
Supplier<T>的一个抽象方法:
    T get():用来获取一个泛型参数指定类型的对象数据

*/
public class Demo01Supplier {

    //定义一个方法.方法的参数传递Supplier<>, 泛型指定为String类型, get方法就会返回一个String
    public static String getString(Supplier<String> sup){
        return sup.get();
    }

    public static void main(String[] args) {
        //调用getString方法,方法的参数是一个函数式接口,可以传递Lambda表达式
        String s = getString(()->{
            return "胡歌";
        });
        System.out.println(s);

        //优化Lambda表达式
        String s2 = getString(()->"胡歌");
        System.out.println(s2);

    }
}
